home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
09
/
3
/
DISK0932.ZIP
/
SOURCE.EXE
/
arc
/
EVALUATE.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-03-31
|
18KB
|
576 lines
{ DOUG STANDING / MAX VON BIRDFACE 1/22/87 / 6/90 }
{ This program is a computerized employee evaluation routine. }
{ Input is easy and quite a bit of the printing and organizing }
{ of the form is done automatically and in a personalized way. }
{ Note: Procedure LBCOAT and call to it at end of main program. }
{ This is an Assignment/Execute procedure passing control back }
{ to LABCOAT.COM. This is only to be used when that file }
{ exists on the same disk with EVALUATE compiled to COM file - }
{ else just remove it, and this program runs free-standing. }
PROGRAM EVALUATE; { v3.6 copyright 6/90 }
TYPE
STRINGTYPE = STRING[80];
VAR
CH : CHAR;
I : INTEGER;
ADAPTABILITY, ATTENDANCE, ATTITUDE : REAL;
JUDGEMENT, INITIATIVE, KNOWLEDGE : REAL;
HELPFULNESS, PTAWARENESS, ACCURACY : REAL;
TELEPHONE, GROOMING, SCORE, SCORE1 : REAL;
DATE, DATE2, DATE3, DEPARTMENT, NAME,PLACE : STRINGTYPE;
PROCEDURE LBCOAT; { go back to LABCOAT program }
VAR
LABCOAT:FILE;
BEGIN
ASSIGN(LABCOAT,'LABCOAT.COM');
EXECUTE(LABCOAT);
END;
PROCEDURE CLEARLINES; { clears lines 23 & 24 }
BEGIN
GOTOXY(1,23);
TEXTBACKGROUND(1);
CLREOL;
GOTOXY(1,24);
TEXTBACKGROUND(1);
CLREOL;
TEXTBACKGROUND(1);
END;
PROCEDURE MAKEaLINE; { for screen borders }
BEGIN
FOR I := 1 TO 80 DO
WRITE(CHR(205));
END;
PROCEDURE SIGNON; { initial screen }
BEGIN
TEXTBACKGROUND(1);
GRAPHBACKGROUND(1);
CLRSCR;
GOTOXY(1,7);
TEXTCOLOR(0);
MAKEaLINE;
GOTOXY(1,8);
TEXTCOLOR(4);
MAKEaLINE;
GOTOXY(1,9);
TEXTCOLOR(15);
MAKEaLINE;
GOTOXY(1,10);
TEXTCOLOR(2);
MAKEaLINE;
GOTOXY(1,11);
TEXTCOLOR(0);
MAKEaLINE;
GOTOXY(13,13);
HIGHVIDEO;
TEXTBACKGROUND(1);
TEXTCOLOR(4);
WRITELN('***** MEDICAL WORKER EVALUATION FORM Version 3.6 *****');
WRITELN(' by ');
WRITELN(' Doug Standing and M. Von Birdface ');
GOTOXY(1,17);
TEXTCOLOR(0);
MAKEaLINE;
GOTOXY(1,18);
TEXTCOLOR(2);
MAKEaLINE;
GOTOXY(1,19);
TEXTCOLOR(15);
MAKEaLINE;
GOTOXY(1,20);
TEXTCOLOR(4);
MAKEaLINE;
GOTOXY(1,21);
TEXTCOLOR(0);
MAKEaLINE;
DELAY(6000);
HIGHVIDEO;
CLRSCR;
END;
PROCEDURE SHOW;
BEGIN
TEXTBACKGROUND(1);
TEXTCOLOR(0);
WRITELN('You will be evaluating ',NAME,' for 11 key characteristics.');
WRITE('Each characteristic is to be assigned');
WRITELN(' a value from ''1 to 5''.');
WRITELN;
LOWVIDEO;
TEXTBACKGROUND(1);
WRITELN(' `1'' means ',NAME,' performs Poorly.');
WRITELN(' `2'' means ',NAME,' just Barely Gets By.');
WRITELN(' `3'' means ',NAME,' does Acceptable Work.');
WRITELN(' `4'' means ',NAME,' delivers Good Performance.');
WRITELN(' `5'' means ',NAME,' does Exceptional Work.');
WRITELN;
HIGHVIDEO;
TEXTBACKGROUND(1);
TEXTCOLOR(4);
WRITE('You must rate each of the 11 ');
WRITELN(' characeristics in the range of `1'' to `5''.');
TEXTCOLOR(0);
WRITELN('After you have rated the 11th catagory,');
WRITELN('all details of the evaluation can be printed.');
WRITELN;
WRITELN;
END;
PROCEDURE ID;
BEGIN
MEM[$40:$17]:=MEM[$40:$17] OR $40; { toggle on CAPS LOCK }
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE('Enter name of place where employed: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(PLACE);
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE('Enter the name of the person you''re rating: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(NAME);
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE('Enter ',NAME,'''s job title at the Clinic: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(DEPARTMENT);
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE('Enter the date of this evaluation (MM/DD/YY): ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(DATE);
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE('Enter the last evaluation date (MM/DD/YY): ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(DATE2);
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE('Enter the starting date of ',NAME,'''s employment here: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(DATE3);
LOWVIDEO;
TEXTBACKGROUND(1);
SCORE1:=0;
WRITE
('Enter ',NAME,'''s last evaluation score, if known ');
TEXTCOLOR(15);
WRITE('(0 if unknown): ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(SCORE1);
WRITELN;
WRITELN;
END;
PROCEDURE MAKEaBORDER (VAR OUTFILE:TEXT);
BEGIN
TEXTBACKGROUND(1);
TEXTCOLOR(0);
FOR I := 1 TO 80 DO
WRITE(LST,CHR(61)); { best with Epson - IBM char set nice with 205}
WRITELN(LST);
END;
PROCEDURE SIGNitSUCKER;
BEGIN
WRITELN(LST);
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST);
WRITELN(LST,'Signature of evaluator:_________________________________');
WRITELN(LST);
WRITELN(LST,'Signature of employee:__________________________________');
WRITELN(LST);
MAKEaBORDER(LST);
WRITE(LST, CHR(12));
WRITELN(LST);
WRITELN(LST,' FOR ',NAME,'''s EVALUATION OF ',DATE);
WRITELN(LST);
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST,' MAJOR STRENGTH AREAS FOR ',NAME);
WRITELN(LST);
IF (ACCURACY) > 4 THEN WRITELN(LST,' ACCURACY');
IF (KNOWLEDGE) > 4 THEN WRITELN(LST,' JOB KNOWLEDGE');
IF (TELEPHONE) > 4 THEN WRITELN(LST,' TELEPHONE SKILLS');
IF (JUDGEMENT) > 4 THEN WRITELN(LST,' GOOD JUDGEMENT SKILLS');
IF (INITIATIVE) > 4 THEN WRITELN(LST,' INITIATIVE');
IF (ADAPTABILITY) > 4 THEN WRITELN
(LST,' PLANNING/ORGANIZATIONAL SKILLS');
IF (ATTITUDE) > 4 THEN WRITELN(LST,' WORK ATTITUDE');
IF (ATTENDANCE) > 4 THEN WRITELN(LST,' ATTENDANCE HABITS');
IF (GROOMING) > 4 THEN WRITELN
(LST,' GOOD ATTENDANCE TO APPEARANCE');
IF (PTAWARENESS) > 4 THEN WRITELN(LST,' PATIENT RELATIONS');
IF (HELPFULNESS) > 4 THEN WRITELN
(LST,' HELPFUL, SUPPORTIVE ATTITUDE');
WRITELN(LST);
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST,' WEAKER AREAS FOR ',NAME);
WRITELN(LST);
IF (ACCURACY) < 3 THEN WRITELN(LST,' ACCURACY CONCERNS');
IF (KNOWLEDGE) < 3 THEN WRITELN
(LST,' JOB KNOWLEDGE OR EXPERIENCE');
IF (TELEPHONE) < 3 THEN WRITELN(LST,' TELEPHONE SKILLS');
IF (JUDGEMENT) < 3 THEN WRITELN(LST,' JUDGEMENT SKILLS');
IF (INITIATIVE) < 3 THEN WRITELN(LST,' INITIATIVE');
IF (ADAPTABILITY) < 3 THEN WRITELN
(LST,' PLANNING/ORGANIZING SKILLS');
IF (ATTITUDE) < 3 THEN WRITELN(LST,' ATTITUDE');
IF (ATTENDANCE) < 3 THEN WRITELN(LST,' ATTENDANCE / PUNCTUALITY');
IF (GROOMING) < 3 THEN WRITELN(LST,' APPEARANCE');
IF (PTAWARENESS) < 3 THEN WRITELN(LST,' PATIENT RELATIONS');
IF (HELPFULNESS) < 3 THEN WRITELN(LST,' HELPFULNESS');
WRITELN(LST);
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST,' COMMENTS SECTION');
WRITE(LST, CHR(12))
END;
PROCEDURE PRINTIT;
VAR
SUM:REAL;
BEGIN
WRITE(LST,(CHR(27)),(CHR(69))); { enable Emphasized Pitch }
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST,' ',PLACE,' EMPLOYEE EVALUATION REPORT');
WRITELN(LST);
WRITELN(LST,' Evaluation of: ',NAME);
WRITELN(LST,' Job Title: ',DEPARTMENT);
WRITELN(LST,' Evaluated on: ',DATE);
WRITELN(LST,' Previously Evaluated: ',DATE2);
WRITELN(LST,' Previous Eval. Score: ',SCORE1:3:1);
WRITELN(LST,' Started Working Here: ',DATE3);
WRITELN(LST);
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST,' RATING NUMBER DEFINITI0NS');
WRITELN(LST);
WRITELN(LST,' 1 = POOR PERFORMANCE ');
WRITELN(LST,' 2 = BARELY ACCEPTABLE ');
WRITELN(LST,' 3 = ACCEPTABLE PERFORMANCE ');
WRITELN(LST,' 4 = GOOD PERFORMANCE ');
WRITELN(LST,' 5 = EXCEPTIONAL PERFORMANCE ');
WRITELN(LST);
MAKEaBORDER(LST);
WRITELN(LST);
WRITELN(LST,' CATAGORY RATING COMMENTS');
WRITELN(LST);
WRITELN(LST,' Accuracy: ',ACCURACY:3:1,
' ________________________________________');
WRITELN(LST,' Knowledge: ',KNOWLEDGE:3:1,
' ________________________________________');
WRITELN(LST,' Telephone: ',TELEPHONE:3:1,
' ________________________________________');
WRITELN(LST,' Judgement: ',JUDGEMENT:3:1,
' ________________________________________');
WRITELN(LST,' Initiative: ',INITIATIVE:3:1,
' ________________________________________');
WRITELN(LST,' Planning/Org: ',ADAPTABILITY:3:1,
' ________________________________________');
WRITELN(LST,' Attitude: ',ATTITUDE:3:1,
' ________________________________________');
WRITELN(LST,' Attendance: ',ATTENDANCE:3:1,
' ________________________________________');
WRITELN(LST,' Grooming: ',GROOMING:3:1,
' ________________________________________');
WRITELN(LST,' Pt. Awareness: ',PTAWARENESS:3:1,
' ________________________________________');
WRITELN(LST,' Helpfulness: ',HELPFULNESS:3:1,
' ________________________________________');
WRITELN(LST);
WRITELN(LST,' The highest possible rating is 55.');
WRITELN(LST,' The lowest possible rating is 11.');
WRITELN(LST,' The mid-range rating is 33.');
WRITELN(LST);
WRITELN(LST,' ',NAME,' is rated at: ',SCORE:3:1);
WRITELN(LST);
IF (SCORE <= 13) THEN
WRITELN(LST,' ',NAME,' is a ''Poor'' performer.')
ELSE IF (SCORE <= 22) THEN
WRITELN(LST,' ',NAME,' Just Gets By & Needs Help.')
ELSE IF (SCORE <= 43) THEN
WRITELN(LST,' ',NAME,' does an Acceptable Job.')
ELSE IF (SCORE <= 49) THEN
WRITELN(LST,' ',NAME,' is a Good Performer.')
ELSE
WRITELN(LST,' ',NAME,'''s doing Exceptional Work!');
IF (SCORE1 >= 11) THEN
BEGIN
IF (SCORE) > (SCORE1) THEN
WRITELN(LST,' ',NAME,'''s score has INCREASED from last evaluation.');
END;
IF (SCORE) < (SCORE1) THEN
WRITELN(LST,' ',NAME,'''s score has DECREASED since last evaluation.');
SIGNitSUCKER
END;
PROCEDURE RATEthePERSON;
BEGIN
REPEAT
GOTOXY(1,23);
HIGHVIDEO;
TEXTBACKGROUND(1);
WRITELN('A - ACCURACY');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Meets quality standards of the job: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(ACCURACY);
CLEARLINES;
UNTIL (ACCURACY <= 5) AND (ACCURACY >=1);
REPEAT
GOTOXY(1,23);
WRITELN('B - JOB KNOWLEDGE');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Understanding of all phases of the work: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(KNOWLEDGE);
CLEARLINES;
UNTIL (KNOWLEDGE <= 5) AND (KNOWLEDGE >=1);
REPEAT
GOTOXY(1,23);
WRITELN('C - TELEPHONE HANDLING');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Handles all phone calls efficiently & pleasantly: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(TELEPHONE);
CLEARLINES;
UNTIL (TELEPHONE <= 5) AND (TELEPHONE >=1);
REPEAT
GOTOXY(1,23);
WRITELN('D - JUDGEMENT');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE
(' Can make good independeant decisions with limited information: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(JUDGEMENT);
CLEARLINES;
UNTIL (JUDGEMENT <= 5) AND (JUDGEMENT >=1);
REPEAT
GOTOXY(1,23);
WRITELN('E - INITIATIVE');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Originates constructive actions: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(INITIATIVE);
CLEARLINES;
UNTIL (INITIATIVE <= 5) AND (INITIATIVE >=1);
REPEAT
GOTOXY(1,23);
WRITELN('F - PLANNING & ORGANIZATION');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE
(' Anticipates problems & plans job effectively: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(ADAPTABILITY);
CLEARLINES;
UNTIL (ADAPTABILITY <=5) AND (ADAPTABILITY >=1);
REPEAT
GOTOXY(1,23);
WRITELN('G - POSITIVE ATTITUDE');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE
(' Positive and pleasing demeanor with patients & co-workers: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(ATTITUDE);
CLEARLINES;
UNTIL (ATTITUDE <= 5) AND (ATTITUDE >=1);
REPEAT
GOTOXY(1,23);
WRITELN('H - ATTENDANCE & PUNCTUALITY');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Attendance and punctuality on the job: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(ATTENDANCE);
CLEARLINES;
UNTIL (ATTENDANCE <= 5) AND (ATTENDANCE >=1);
REPEAT
GOTOXY(1,23);
WRITELN('I - GROOMING & NEATNESS');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Compliance with rules of dress & appearance: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(GROOMING);
CLEARLINES;
UNTIL (GROOMING <= 5) AND (GROOMING >=1);
REPEAT
GOTOXY(1,23);
WRITELN('J - PATIENT AWARENESS');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE
(' Believes that patient comfort & convenience are our purpose: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(PTAWARENESS);
CLEARLINES;
UNTIL (PTAWARENESS <= 5) AND (PTAWARENESS >=1);
REPEAT
GOTOXY(1,23);
WRITELN('K - HELPFULNESS');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITE(' Demonstrates willingness to learn and to help others: ');
HIGHVIDEO;
TEXTBACKGROUND(1);
READLN(HELPFULNESS);
CLEARLINES;
UNTIL (HELPFULNESS <= 5) AND (HELPFULNESS >=1);
END;
BEGIN { Main Code Portion }
SIGNON;
MEM[$40:$17] := MEM[$40:$17] OR $40; { sets Caps Lock on }
REPEAT
GRAPHBACKGROUND(1);
TEXTBACKGROUND(1);
CLRSCR;
ID;
SHOW;
RATEthePERSON;
SCORE := ACCURACY + KNOWLEDGE + TELEPHONE + JUDGEMENT +
INITIATIVE + ADAPTABILITY + ATTITUDE + ATTENDANCE +
GROOMING + PTAWARENESS + HELPFULNESS;
IF (SCORE < 11) THEN
BEGIN
CLRSCR;
SOUND(100);
DELAY(500);
NOSOUND;
GOTOXY(1,10);
TEXTBACKGROUND(1);
TEXTCOLOR(4);
WRITELN
('The score for ',NAME,' is below 11. You must really hate ',NAME,'!!');
LOWVIDEO;
TEXTBACKGROUND(1);
TEXTCOLOR(14);
WRITELN;
WRITELN('An error has been made - I''m no fool!'); { arguable }
HIGHVIDEO;
TEXTBACKGROUND(1);
WRITELN;
WRITELN('Please redo the evaluation on ',NAME);
DELAY(8000)
END
ELSE IF (SCORE > 55) THEN
BEGIN
TEXTBACKGROUND(1);
TEXTCOLOR(4);
WRITELN('Hey! I know you like ',NAME,' but the score is above 55!!');
LOWVIDEO;
TEXTBACKGROUND(1);
WRITELN(' I think you made an error.');
HIGHVIDEO;
TEXTBACKGROUND(1);
WRITELN('Please redo the evaluation on ',NAME);
DELAY(8000)
END
ELSE
BEGIN
TEXTBACKGROUND(1);
TEXTCOLOR(0);
WRITELN;
WRITELN;
WRITELN(NAME,' has a score of ',SCORE:3:1);
WRITELN;
TEXTCOLOR(14);
WRITE('Do you want a hard copy for full details? (Y/N): ');
READ(KBD,CH);
IF CH IN ['Y','y'] THEN
BEGIN
TEXTBACKGROUND(1);
CLRSCR;
GOTOXY(15,20);
TEXTCOLOR(20);
DELAY(500);
SOUND(1000);
DELAY(700);
SOUND(400);
DELAY(1000);
NOSOUND;
DELAY(500);
WRITELN(' --- BE SURE PRINTER IS TURNED ON ---');
WRITELN;
WRITELN;
TEXTCOLOR(0);
WRITE(' Press any key when Printer is ready');
READ(KBD,CH);
CLRSCR;
GRAPHBACKGROUND(1);
TEXTBACKGROUND(1);
GOTOXY(10,15);
TEXTCOLOR(14);
WRITELN(' *** PRINTING NOW BEING DONE ***');
PRINTIT;
WRITELN(LST, (CHR(27)), (CHR(70)));
WRITELN
END;
WRITELN;
WRITELN;
TEXTCOLOR(0);
WRITE('Do you want to do another evaluation? (Y/N): ');
READ(KBD,CH)
END;
UNTIL CH IN ['N','n'];
CLOSE(LST);
LBCOAT; { if compiling to memory or using EVALUATE as a }
END. { free standing .COM file, remove this LBCOAT call }
{ A LOT of credit to Dr. Leon Wortman's Turbo Pascal Programming }
{ with Applications - the core ideas in this code are adapted }
{ from his excellent text, a good buy in my opinion (TAB Books). }